/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.yonsei.iwb.smarttv.result;

import com.hp.hpl.jena.rdf.model.Resource;
import java.util.LinkedHashMap;
import java.util.Vector;

/**
 * 사용자의 질의에 대해 개체 식별의 결과를 질의어와 결과의 쌍으로 저장하기 위한 클래스
 *
 * @author Onlyjiny
 */
//public class NamedEntityLinkedHashMap extends LinkedHashMap<String, NamedEntitySet> {
public class NamedEntitySetByKeyword {
    
    private Vector<String> keywords = new Vector<String>();
    private Vector<NamedEntitySet> keywordMatchedNES = new Vector<NamedEntitySet>();
        
    public Vector<String> getKeywordsSet(){
        return this.keywords;
    }
        
    public NamedEntitySet get(String s){
        for (int i = 0; i < this.keywords.size(); i++) {
            String key = this.keywords.get(i);
            if(key.equals(s)){
                return this.keywordMatchedNES.elementAt(i);
            }
        }        
        return null;        
    }
    
    public void put(String s, NamedEntitySet nes){
        this.keywords.add(s);
        this.keywordMatchedNES.add(nes);
    }
   

//    public boolean putEntity(String key, Resource value) {
//        
//        NamedEntitySet nes;
//        if (this.containsKey(key)) {
//            nes = this.get(key);
//        } else {
//            // 이미 매칭된 문자열을 포함한 결과에 대한 처리
//            // 하위 문자열로써 동일한 경우에 대한 고려가 필요할 경우 수정요
//
//            Object[] keys = this.keySet().toArray();
//            for (int i = 0; i < keys.length; i++) {
//                if (keys[i].toString().contains(key)) {
//                    return false;
//                }
//            }
//            nes = new NamedEntitySet();
//        }
//        NamedEntity ne = new NamedEntity(value);
//        nes.add(ne);
//        this.put(key, nes);
//        return true;
//    }
    
    @Override
    public String toString() {
        StringBuffer sb = new StringBuffer();
        sb.append("::::: NER Result\n");
        
        for (int i = 0; i < this.keywords.size(); i++) {
            String s = this.keywords.get(i);
            sb.append("Keyword: " + s + "\n");
            sb.append(this.keywordMatchedNES.get(i).toString());
        }
        return sb.toString();
    }
}
